struct usrapp_t
{
	struct
	{
		struct
		{
			struct vsfusbd_CDCACM_t param;
			struct vsf_fifostream_t stream_tx;
			struct vsf_fifostream_t stream_rx;
			uint8_t txbuff[4 * 1024];
			uint8_t rxbuff[4 * 1024];
		} cdc;
		struct vsfusbd_iface_t ifaces[2];
		struct vsfusbd_config_t config[1];
		struct vsfusbd_device_t device;
	} usbd;

	struct usrapp_thread_bundle_t
	{
		int index;
		struct vsfsm_t sm;
		struct vsfsm_pt_t pt;
	} threads[APPCFG_THREAD_NUM];
};

extern struct usrapp_t usrapp;

void usrapp_srt_init(struct usrapp_t *app);
void usrapp_nrt_init(struct usrapp_t *app);
